#include<stdio.h>


swap(char* a,char* b){
char tmp;
tmp=*a;
*a=*b;
*b=tmp;
}


p(char *a,int from ,int to){
  if(to<=1)return;
	if(from==to){
	int i;
	for(i=0;i<=to;i++)
		printf("%c",a[i]);
  printf("\n");
}else{
	int j;
	for(j=from;j<=to;j++){
	swap(&a[j],&a[from]);
	p(a,from+1,to);
  swap(&a[from],&a[j]);

}


}
	


}

int main(){
char a[]="abcd";
p(a,0,3);

return 0;
}
